#ifndef CASILLEROIDA_H
#define	CASILLEROIDA_H

#include "Casillero.h"

class CasilleroIDA : public Casillero {
public:
    /**
     * Crea un casillero a partir de un arreglo de enteros donde La posicion 
     * i-esima representa la casilla "i" del tablero y el valor de esta posicion 
     * indica que ficha contiene.
     * @param dimenciones - Largo del Casillero.
     * @param posicionDeVacio - Posicion de la casilla vacia (esta debe
     * coincidir con la informacion en "info" de lo contrario se generara una
     * exepcion).
     */
    CasilleroIDA(const int *info, int dimenciones, short posicionDeVacio);

    virtual ~CasilleroIDA();
    
    virtual char Info(int i) const;

    virtual void moverCero(int pos);

    virtual short Dimenciones() const;

    virtual short Vacio() const;
    
    virtual Casillero *Clone() const;

    virtual void toString(char *out) const;

    virtual char *toString() const;
    

private:
    /** La posicion i-esima representa la casilla "i" del tablero y el valor de 
     * esta posicion indica que ficha contiene.
     */
    int *info;
};

#endif


